/**
 * @弹出图片选择框
 * @author 冯胜德
 * @date 2017-04-06 
 */
;(function() {
	$.fn.filechoose = function(type, typeUrl, fileUrl, layer, laytpl, tree, findTypeTreeUrl, callback) {
		var self = $(this);		
		var typeName = type == 1 ? '所有图片' : '所有视频';
		
		// 左侧tab菜单
		var leftMenu = '<div class="gallery">';
		leftMenu += '<div class="layui-tab layui-tab-card" style="width: 980px; height: 700px;" id="layui_tab_title">';
		leftMenu += '<ul class="layui-tab-title"><li class="layui-this tab" val="0">'+typeName+'</li></ul><div class="layui-tab-content">';
		leftMenu += '<div class="layui-tab-item layui-show item_0"></ul></div></div></div></div>';

		// 图片或视频
		var imageTpl = '<ul class="pic_show">{{#for(var i=0;i<d.length;i++){}}';
		imageTpl += '<li class="pic_common">';
		if (type == 2) {
			imageTpl += '<img src="images/movie.png" style="margin-top:12px;" title ="{{d[i].resourceName}}"/>';
		} else {
			imageTpl += '<img  src="{{d[i].resourceUrl}}"  title ="{{d[i].resourceName}}"/>';
		}				
		imageTpl += '<div class="pic_checkbox"><input type="checkbox"'
		imageTpl += 'class="regular-checkbox" id="{{d[i].sysResourceId}}" data-name="{{d[i].resourceName}}" data-url = "{{d[i].resourceUrl}}"'
		imageTpl += 'name="items" value="{{d[i].sysResourceId}}"><label for="{{d[i].sysResourceId}}"></label></div></li>{{#}}}</ul>';

		var menu = $(leftMenu);
		var layId = 0;
		
		// 当前类别
		var currentType = 0;
		var index = 1, size = 500;
		
//		var  typeTpl ='<li class = "tab"  val="{{d.resTypeId}}">{{d.typeName}}</li>';	
//		var  containerTpl ="<div class='layui-tab-item item_{{d.resTypeId}}'></div>";	
		
//		$.post(typeUrl, {type : type }, function(data, status) {
//			if (data.code == 200) {
//				var list = data.data;
//				for (var i = 0; i < list.length; i++) {
//					laytpl(typeTpl).render(list[i], function(html){
//						$(html).appendTo(menu.find(".layui-tab-title"));
//					});
//					laytpl(containerTpl).render(list[i], function(html){
//						$(html).appendTo(menu.find(".layui-tab-content"));
//					});
//				}
//				initialization();
//				layId = layer.open({
//					type : 1,
//					title : false,
//					closeBtn : 1,
//					shadeClose : true,
//					content : menu.prop("outerHTML"),
//					maxWidth : 1060
//				});
//			}
//		});
		layId = layer.open({
			type : 1,
			title : false,
			closeBtn : 1,
			shadeClose : true,
			content : menu.prop("outerHTML"),
			maxWidth : 1060
		
		});
		
		$.myPost(findTypeTreeUrl, {
				type : type
			},function(data, status){
				var list = data.data;
				var arr = [];

			tree({
				elem : "#layui_tab_title", //指定元素
				click : function(item){ //点击节点回调
					$(".layui-tab-item").each(function() {
						$(this).empty();
					});
					currentType = item.id;
					initialization();
				},
				nodes:createTree(arr,list),
			});
			initialization();
		});


		var createTree =  function(arr,list){
			if(undefined!=list.length){
				for(var i=0;i<list.length;i++){
					arr[i] = {
						name:list[i].typeName,
						id:list[i].resTypeId,
						children:createTree(new Array(list[i].sysResourceTypeForms.length),list[i].sysResourceTypeForms)	
					}
				}	
				return arr;
			}
			return [];
		};
		
		function initialization() {
			console.log("请求地址：" + fileUrl);
			console.log("当前类别：" + currentType);
			console.log("当前类型：" + type);
			$.myPost(fileUrl, {
				type : type,
				typeId : currentType,
				page : index,
				size : size
			}, function(data, status) {
				var parent = $("body").find(".item_0");
				if (data.code == 200) {
					var list = data.data;
					console.log(list);
					laytpl(imageTpl).render(list, function(html) {
						$(html).appendTo(parent);
						console.log(html);
					});
				}else{
					layer.msg(data.info);
				}
			});
		}

		$("body").off("click", ".tab").on("click", ".tab", function() {
			$(".layui-tab-item").each(function() {
				$(this).empty();
			});
			currentType = $(this).attr("val");
			initialization();
		});

		$("body").off("click",".regular-checkbox").on("click", ".regular-checkbox", function() {
			if ($(this).prop("checked") == true) {
				layer.close(layId);	
				if(callback != null){
					callback({url:$(this).data().url, id : $(this).val() });
					return;
				}
				if(type == 2){
					var target = self.attr("target");
					$("#"+target).attr("value",$(this).val() );
					$("#"+target).html($(this).data().name);
				}else{
					self.attr("src" , $(this).data().url);
					var target = self.attr("target");				
					$("#"+target).val($(this).val());
					$("#"+target).focus();
				}
			}
		});
	};
})();